<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Object Pascal</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Object_Pascal"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Object_Pascal rootpage-Object_Pascal skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Object Pascal</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">Object Pascal</th></tr><tr><th scope="row" class="infobox-label"><a href="Programming_paradigm" title="Programming paradigm">Paradigms</a></th><td class="infobox-data"><a href="Imperative_programming" title="Imperative programming">Imperative</a>, <a href="Structured_programming" title="Structured programming">structured</a>, <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a>, <a href="Functional_programming" title="Functional programming">functional</a> (Delphi dialect only), <a href="Component-based_software_engineering" title="Component-based software engineering">component-based</a>, <a href="Event-driven_programming" title="Event-driven programming">event-driven</a>, <a href="Generic_programming" title="Generic programming">generic</a></td></tr><tr><th scope="row" class="infobox-label">Family</th><td class="infobox-data"><a href="Niklaus_Wirth" title="Niklaus Wirth">Wirth</a> <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="Larry_Tesler" title="Larry Tesler">Larry Tesler</a> (Apple)<br><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a> (for Apple)<br><a href="Anders_Hejlsberg" title="Anders Hejlsberg">Anders Hejlsberg</a> (Borland)<sup id="cite_ref-InfoworldTechTalk_1-0" class="reference"><a href="#cite_note-InfoworldTechTalk-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_developer" class="mw-redirect" title="Software developer">Developers</a></th><td class="infobox-data organiser">Apple Computer (initial)<br>Borland International<sup id="cite_ref-InfoworldTechTalk_1-1" class="reference"><a href="#cite_note-InfoworldTechTalk-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">1986<span style="display:none"> (<span class="bday dtstart published updated">1986</span>)</span></td></tr><tr><th scope="row" class="infobox-label"><a href="Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="Type_system" title="Type system">Static and dynamic</a> (dynamic typing through variants, <i>array of const</i>, and <a href="Run-time_type_information" title="Run-time type information">RTTI</a>), <a href="Type_system#Strong_and_weak_typing" title="Type system">strong</a>, <a href="Type_system#Safely_and_unsafely_typed_systems" title="Type system">safe</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Scope_(computer_science)" title="Scope (computer science)">Scope</a></th><td class="infobox-data"><a href="Scope_(computer_science)" title="Scope (computer science)">Lexical</a> (static)</td></tr><tr><th scope="row" class="infobox-label"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="ARM_architecture_family" title="ARM architecture family">ARM</a>, <a href="X86" title="X86">x86</a>, <a href="PowerPC" title="PowerPC">PowerPC</a>, <a href="Ppc64" title="Ppc64">ppc64</a>, <a href="SPARC" title="SPARC">SPARC</a>, <a href="MIPS_architecture" title="MIPS architecture">MIPS</a>, <a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a>, <a href="Java_(software_platform)" title="Java (software platform)">Java</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Filename_extension" title="Filename extension">Filename extensions</a></th><td class="infobox-data"><code>.p</code>, <code>.pp</code>, <code>.pas</code></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Major <a href="Programming_language_implementation" title="Programming language implementation">implementations</a></th></tr><tr><td colspan="2" class="infobox-full-data"><a href="Delphi_(software)" title="Delphi (software)">Delphi</a> (<a href="X86" title="X86">x86</a>, <a href="ARM_architecture_family" title="ARM architecture family">ARM</a>), <a href="Free_Pascal" title="Free Pascal">Free Pascal</a> (<a href="X86" title="X86">x86</a>, <a href="PowerPC" title="PowerPC">PowerPC</a>, <a href="Ppc64" title="Ppc64">ppc64</a>, <a href="SPARC" title="SPARC">SPARC</a>, <a href="MIPS_architecture" title="MIPS architecture">MIPS</a>, <a href="ARM_architecture_family" title="ARM architecture family">ARM</a>), <a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a> (<a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, Native <a href="Cocoa_(API)" title="Cocoa (API)">Cocoa</a>), Smart Mobile Studio (<a href="JavaScript" title="JavaScript">JavaScript</a>)</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;"><a href="Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th></tr><tr><td colspan="2" class="infobox-full-data">Apple, <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a>, <a href="Free_Pascal" title="Free Pascal">Free Pascal</a> (using <b>objfpc</b> or <b>delphi</b> mode), <a href="Delphi_(software)" title="Delphi (software)">Delphi</a>, Delphi.NET, Delphi Web Script, <a href="PascalABC.NET" title="PascalABC.NET">PascalABC.NET</a>, <a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="Simula" title="Simula">Simula</a>, <a href="Smalltalk" title="Smalltalk">Smalltalk</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, Genie, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="Nim_(programming_language)" title="Nim (programming language)">Nim</a>, <a href="C/AL" title="C/AL">C/AL</a></td></tr></tbody></table>
<p><b>Object Pascal</b> is an extension to the programming language <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a> that provides <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> (OOP) features such as <a href="Class_(computer_programming)" title="Class (computer programming)">classes</a> and <a href="Method_(computer_programming)" title="Method (computer programming)">methods</a>.
</p><p>The language was originally developed by <a href="Apple_Inc." title="Apple Inc.">Apple Computer</a> as <i><a href="Clascal" title="Clascal">Clascal</a></i> for the <a href="Apple_Lisa" title="Apple Lisa">Lisa</a> Workshop development system. As Lisa gave way to <a href="Mac_(computer)" title="Mac (computer)">Macintosh</a>, Apple collaborated with <a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>, the author of Pascal, to develop an officially standardized version of Clascal. This was renamed Object Pascal. Through the mid-1980s, Object Pascal was the main programming language for early versions of the <a href="MacApp" title="MacApp">MacApp</a> <a href="Application_framework" title="Application framework">application framework</a>. The language lost its place as the main development language on the Mac in 1991 with the release of the <a href="C%2B%2B" title="C++">C++</a>-based MacApp 3.0. Official support ended in 1996.
</p><p><a href="Gen_Digital" title="Gen Digital">Symantec</a> also developed a <a href="Compiler" title="Compiler">compiler</a> for Object Pascal for their Think Pascal product, which could compile programs much faster than Apple's own <a href="Macintosh_Programmer's_Workshop" title="Macintosh Programmer's Workshop">Macintosh Programmer's Workshop</a> (MPW). Symantec then developed the Think Class Library (TCL), based on MacApp concepts, which could be called from both Object Pascal and <a href="THINK_C" title="THINK C">THINK C</a>. The Think suite largely displaced MPW as the main development platform on the Mac in the late 1980s.
</p><p>Symantec ported Object Pascal to the PC, and developed a similar object framework on that platform. In contrast to TCL, which eventually migrated to C++, the PC <a href="Library_(computing)" title="Library (computing)">libraries</a> remained mainly based on Pascal.
</p><p><a href="Borland" title="Borland">Borland</a> added support for object-oriented programming to <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a> 5.5, which would eventually become the basis for the Object Pascal dialect used in <a href="Delphi_(software)" title="Delphi (software)">Delphi</a> created by <a href="Anders_Hejlsberg" title="Anders Hejlsberg">Anders Hejlsberg</a>. Delphi remained mainstream for business applications on the PC into the early 2000s, and was partly displaced in the 2000s with the introduction of the <a href=".NET_Framework" title=".NET Framework">.NET Framework</a> which included Hejlsberg's <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Apple_Pascal">Apple Pascal</h3></div>
<p>Pascal became a major language in the programming world in the 1970s, with high-quality implementations on most <a href="Minicomputer" title="Minicomputer">minicomputer</a> platforms and <a href="Microcomputer" title="Microcomputer">microcomputers</a>. Among the latter was the <a href="UCSD_Pascal" title="UCSD Pascal">UCSD Pascal</a> system, which compiled to an intermediate <i>p-System</i> code format that could then run on multiple platforms. Apple licensed UCSD and used it as the basis for their <a href="Apple_Pascal" title="Apple Pascal">Apple Pascal</a> system for the <a href="Apple_II" title="Apple II">Apple II</a> and <a href="Apple_III" title="Apple III">Apple III</a>.
</p><p>Pascal became one of the major languages in the company in this period. With the start of the <a href="Apple_Lisa" title="Apple Lisa">Apple Lisa</a> project, Pascal was selected as the main programming language of the platform, although this time as a <i>compiler</i> in contrast to the p-System <i>interpreter</i>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Clascal_and_Apple's_early_Object_Pascal">Clascal and Apple's early Object Pascal</h3></div>
<p>Object Pascal is an extension of the Pascal language that was developed at <a href="Apple_Inc." title="Apple Inc.">Apple Computer</a> by a team led by <a href="Larry_Tesler" title="Larry Tesler">Larry Tesler</a> in consultation with <a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>, the inventor of Pascal.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> It is descended from an earlier object-oriented version of Pascal named <a href="Clascal" title="Clascal">Clascal</a>, which was available on the <a href="Apple_Lisa" title="Apple Lisa">Lisa</a> computer.
</p><p>Object Pascal was needed to support <a href="MacApp" title="MacApp">MacApp</a>, an expandable Macintosh application framework that would now be termed a <a href="Class_library" class="mw-redirect" title="Class library">class library</a>. Object Pascal extensions, and MacApp, were developed by Barry Haynes, Ken Doyle, and Larry Rosenstein, and were tested by Dan Allen. Larry Tesler oversaw the project, which began very early in 1985 and became a product in 1986.
</p><p>An Object Pascal extension was also implemented in the Think Pascal <a href="Integrated_development_environment" title="Integrated development environment">integrated development environment</a> (IDE). The IDE includes the compiler and an editor with <a href="Syntax_highlighting" title="Syntax highlighting">syntax highlighting</a> and checking, a powerful <a href="Debugger" title="Debugger">debugger</a>, and a class library.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Many developers preferred Think Pascal over Apple's implementation of Object Pascal because Think Pascal offered a much faster compile–<a href="Linker_(computing)" title="Linker (computing)">link</a>–debug cycle, and tight integration of its tools. The last official release of Think Pascal was 4.01, in 1992. <a href="NortonLifeLock" class="mw-redirect" title="NortonLifeLock">Symantec</a> later released an unofficial version 4.5d4 at no charge.
</p><p>Apple dropped support for Object Pascal when they moved from <a href="Motorola_68000_series" title="Motorola 68000 series">Motorola 68000 series</a> chips to IBM's <a href="PowerPC" title="PowerPC">PowerPC</a> architecture in 1994. MacApp 3.0, had already been rewritten in <a href="C%2B%2B" title="C++">C++</a> and ported to this platform.
</p><p><a href="Metrowerks" title="Metrowerks">Metrowerks</a> bundled an Object Pascal compiler with <a href="CodeWarrior" title="CodeWarrior">CodeWarrior</a> that targeted both <a href="Motorola_68000_series" title="Motorola 68000 series">68k</a> and <a href="PowerPC" title="PowerPC">PowerPC</a>, both in their IDE and as MPW tools. Macintosh developers using Object Pascal had a path to port to the <a href="PowerPC" title="PowerPC">PowerPC</a>, even after both Apple and Symantec dropped support. <a href="MacApp" title="MacApp">MacApp</a> 2.0, written in Object Pascal, was ported to the PowerPC using <a href="CodeWarrior" title="CodeWarrior">CodeWarrior</a>.<sup id="cite_ref-mt1995_11_5-0" class="reference"><a href="#cite_note-mt1995_11-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-mt1996_02_6-0" class="reference"><a href="#cite_note-mt1996_02-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Borland,_Inprise,_CodeGear,_and_Embarcadero_years">Borland, Inprise, CodeGear, and Embarcadero years</h2></div>
<p>In 1986, <a href="Borland" title="Borland">Borland</a> introduced similar extensions, also named Object Pascal, to the <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a> product for the Macintosh, and in 1989 for Turbo Pascal 5.5 for DOS. When Borland refocused from <a href="DOS" title="DOS">DOS</a> to <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a> in 1994, they created a successor to Turbo Pascal, named <a href="Delphi_(software)" title="Delphi (software)">Delphi</a>, and introduced a new set of extensions to create what is now known as the Delphi language.
</p><p>The development of Delphi started in 1993 and Delphi 1.0 was officially released in the United States on 14 February 1995. While code using the Turbo Pascal object model could still be compiled, Delphi featured a new syntax using the keyword <code>class</code> in preference to <code>object</code>, the Create constructor and a virtual Destroy destructor (and negating having to call the <code>New</code> and <code>Dispose</code> procedures), properties, method pointers, and some other things. These were inspired by the <a href="International_Organization_for_Standardization" title="International Organization for Standardization">ISO</a> working <a href="Draft_document" class="mw-redirect" title="Draft document">draft</a> for object-oriented extensions, but many of the differences from Turbo Pascal's dialect (such as the draft's requirement that all methods be <a href="Virtual_function" title="Virtual function">virtual</a>) were ignored.
</p><p>The Delphi language has continued to evolve over the years to support constructs such as <a href="Dynamic_array" title="Dynamic array">dynamic arrays</a>, <a href="Generic_programming" title="Generic programming">generics</a> and <a href="Anonymous_function" title="Anonymous function">anonymous methods</a>. The old object syntax introduced by Apple ("Old-Style Object Types") is still supported.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Versions">Versions</h2></div>
<ul><li><a href="Borland" title="Borland">Borland</a> used the name <i>Object Pascal</i> for the programming language in the first versions, but later renamed it to <i>Delphi</i>. <a href="Compiler" title="Compiler">Compilers</a> that claim to be compatible with Object Pascal are often trying to be compatible with Delphi <a href="Source_code" title="Source code">source code</a>. Because Delphi is a <a href="Trademark" title="Trademark">trademark</a>, compatible compilers continue using the name <i>Object Pascal</i>.</li>
<li><a href="Embarcadero_Technologies" title="Embarcadero Technologies">Embarcadero Technologies</a>, which purchased Delphi in 2008,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> sells the <a href="Delphi_(software)" title="Delphi (software)">Delphi</a> <a href="Integrated_development_environment" title="Integrated development environment">integrated development environment</a> (IDE) that compiles the Delphi dialect of Object Pascal to <a href="Windows" class="mw-redirect" title="Windows">Windows</a> and <a href="MacOS" title="MacOS">macOS</a>, <a href="IOS" title="IOS">iOS</a>, <a href="Android_(operating_system)" title="Android (operating system)">Android</a> and Web.</li>
<li><a href=".NET_Framework" title=".NET Framework">.NET</a> support existed from Delphi 8 through Delphi 2005, 2006, and 2007, which now has been replaced by another language, <i>Oxygene</i> (see below), which is not fully backward-compatible.</li>
<li>The <a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a> language developed by <a href="RemObjects_Software" title="RemObjects Software">RemObjects Software</a> targets the <a href="Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a>, the <a href="Java_(software_platform)" title="Java (software platform)">Java</a> Runtime Environment and <a href="Apple_Inc." title="Apple Inc.">Apple</a>'s <a href="Cocoa_(API)" title="Cocoa (API)">Cocoa</a> frameworks for <a href="IOS" title="IOS">iOS</a> and <a href="MacOS" title="MacOS">macOS</a>.</li>
<li>The <a href="Open_source" title="Open source">open source</a> <a href="Free_Pascal" title="Free Pascal">Free Pascal</a> project allows the language to be compiled for a wide range of <a href="Operating_system" title="Operating system">operating systems</a>, including <a href="Linux" title="Linux">Linux</a> (<a href="32-bit" class="mw-redirect" title="32-bit">32-bit</a>, <a href="64-bit" class="mw-redirect" title="64-bit">64-bit</a>), <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="Solaris_(operating_system)" class="mw-redirect" title="Solaris (operating system)">Solaris</a>, <a href="Windows_API" title="Windows API">Windows API</a> (32, 64, <a href="Windows_CE" title="Windows CE">CE</a>), the <a href="ARM_architecture_family" title="ARM architecture family">ARM</a> <a href="Instruction_set_architecture" title="Instruction set architecture">instruction set architecture</a> (ISA), and several other hardware architectures. The first version of Free Pascal for the <a href="IPhone" title="IPhone">iPhone</a> <a href="Software_development_kit" title="Software development kit">software development kit</a> (SDK) 2.<i>x</i> was announced on January 17, 2009.<sup id="cite_ref-fpciphone_9-0" class="reference"><a href="#cite_note-fpciphone-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li>
<li>The <a href="Smart_Pascal" title="Smart Pascal">Smart Pascal</a> language<sup id="cite_ref-asmartbook_10-0" class="reference"><a href="#cite_note-asmartbook-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> targets <a href="ECMAScript" title="ECMAScript">ECMAScript</a>–<a href="JavaScript" title="JavaScript">JavaScript</a> and is used in Smart Mobile Studio, written by Jon Lennart Aasenden and published by Optimale Systemer (2012). The language greatly simplifies <a href="HTML5" title="HTML5">HTML5</a> development through object-oriented, and <a href="Rapid_application_development" title="Rapid application development">rapid application development</a> (RAD) methods. Smart Pascal integrates tightly with established technologies such as <a href="Node.js" title="Node.js">node.js</a>, Embarcadero DataSnap, and Remobjects SDK to produce high-performance <a href="Client%E2%80%93server_model" title="Client–server model">client–server model</a> web applications. The language allows easy creation of visual components and reusable libraries. The Smart Pascal dialect stems from the DWScript language, extended to better integrate with the JavaScript environment and libraries, such as <code>asm</code> sections which are plain JavaScript but have access to Pascal symbols, or <i>external</i> classes which map directly to prototypal JavaScript classes. Smart Pascal introduces true inheritance, classes, partial classes, interfaces, a <a href="Virtual_method_table" title="Virtual method table">virtual method table</a> and many other advanced constructs which are not a part of JavaScript by default.</li>
<li>The <a href="Morfik" title="Morfik">Morfik</a> Pascal language, developed by Morfik, targets <a href="Ajax_(programming)" title="Ajax (programming)">Ajax</a>-enabled Web applications. The compiler is built into the company's AppsBuilder IDE and allows Object Pascal code to be used in implementing code to execute in a browser or server. It uses the <a href="Free_Pascal" title="Free Pascal">Free Pascal</a> compiler to generate native binaries from Object Pascal.</li>
<li>The open source <a href="GNU_Pascal" title="GNU Pascal">GNU Pascal</a> compiler is available as a front-end to the <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a>, which implements the <a href="International_Organization_for_Standardization" title="International Organization for Standardization">International Organization for Standardization</a> (ISO) 7185 Pascal standard, and most of the ISO 10206 Extended Pascal standard.</li>
<li>Turbo51 is a free compiler to program <a href="Intel_8051" class="mw-redirect" title="Intel 8051">Intel 8051</a> chips.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li>
<li>WDSibyl is an open source Delphi-like IDE and compiler available for <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> and <a href="OS/2" title="OS/2">OS/2</a>,<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> and is a commercial <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a> compatible environment released by a company named Speedsoft that was later developed into a Delphi-like RAD environment named Sybil, and then open sourced under the GPL when that company closed down. Wolfgang Draxler (WD) now maintains the software.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> The compiler used seems to be located in a DLL and is not open-source.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Compilers">Compilers</h2></div>
<p>Object Pascal <a href="Compiler" title="Compiler">compilers</a> are available for a wide range of <a href="Operating_system" title="Operating system">operating systems</a> and architectures.
</p>
<ul><li><a href="Delphi_(software)" title="Delphi (software)">Delphi</a> is probably the best known compiler. It is the successor of the highly successful Borland Pascal and <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a> product line. It targets <a href="Windows_9x" title="Windows 9x">Windows 9x</a> (Delphi 2007 and older), the <a href="Windows_NT" title="Windows NT">Windows NT</a> family, <a href=".NET_Framework" title=".NET Framework">.NET Framework</a> (Delphi 8, 2005, 2007), <a href="MacOS" title="MacOS">macOS</a> (Delphi XE2 and later), <a href="IOS" title="IOS">iOS</a> (Delphi XE2 and later, generating native binaries in XE4 and later), <a href="Android_(operating_system)" title="Android (operating system)">Android</a> (Delphi XE5 and later, generating native binaries in XE5 and later). Support for .NET finally became a separate product known as Oxygene (see below).</li>
<li><a href="Free_Pascal" title="Free Pascal">Free Pascal</a> Compiler (FPC) is an open-source Object Pascal compiler that supports many Pascal dialects, including <a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a> 7, Delphi, and others. Currently, FPC can generate code for <a href="IA-32" title="IA-32">IA-32</a>, <a href="X86-64" title="X86-64">x86-64</a>, <a href="PowerPC" title="PowerPC">PowerPC</a>, <a href="SPARC" title="SPARC">SPARC</a>, and <a href="ARM_architecture" class="mw-redirect" title="ARM architecture">ARM</a> processors, and for several operating systems, including <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>, <a href="Linux" title="Linux">Linux</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, and <a href="MacOS" title="MacOS">macOS</a> (with an <a href="Xcode" title="Xcode">Xcode</a> integration kit). Several separate projects exist to facilitate rapid application development with FPC, the most prominent one being <a href="Lazarus_(IDE)" class="mw-redirect" title="Lazarus (IDE)">Lazarus (IDE)</a>.</li>
<li><a href="GNU_Pascal" title="GNU Pascal">GNU Pascal</a> (a separately distributed part of the <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a>), while not formally aimed at the Delphi dialect of Pascal, does contain a Turbo Pascal compatibility mode, and is very slowly incorporating a few Delphi language features. It is unsuitable for recompiling large bodies of Delphi code directly, but is notable as having prolific support for operating systems and hardware architectures.</li>
<li><a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a> (formerly <i>Chrome</i>) is an Object Pascal compiler from <a href="RemObjects_Software" title="RemObjects Software">RemObjects Software</a> that integrates into <a href="Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Microsoft Visual Studio</a>. It is also available as free <a href="Command-line_interface" title="Command-line interface">command-line interface</a> compiler that runs native on <a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a>. It is three compilers in one, each targeting a different platform: Echoes for <a href=".NET_Framework" title=".NET Framework">.NET Framework</a>, <a href="Mono_(software)" title="Mono (software)">Mono</a>, <a href="Windows_Runtime" title="Windows Runtime">WinRT</a> and <a href="Windows_Phone_8" title="Windows Phone 8">Windows Phone 8</a>, Cooper for <a href="JDK" class="mw-redirect" title="JDK">JDK</a> and <a href="Android_(operating_system)" title="Android (operating system)">Android</a>, and Nougat for <a href="IOS" title="IOS">iOS</a> and <a href="MacOS" title="MacOS">macOS</a>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Legacy_products">Legacy products</h3></div>
<ul><li><a href="Borland_Kylix" title="Borland Kylix">Borland Kylix</a> was a <a href="Linux" title="Linux">Linux</a> variant of Delphi which only targets Intel 32-bit Linux using the <a href="Qt_(software)" title="Qt (software)">Qt</a> library. It does not work out of the box with most modern Linux distributions.</li>
<li><a href="Virtual_Pascal" title="Virtual Pascal">Virtual Pascal</a> was a free 32-bit Turbo Pascal and Delphi compatible compiler for mainly <a href="OS/2" title="OS/2">OS/2</a> and Microsoft Windows. Later, it also received a DOS+ Extender and an experimental Linux cross-compiler. The compiler's development stopped at about the level of Delphi 2. In 2007, its official website ceased to operate, and further development ceased.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Interpreters">Interpreters</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Pascal_Script" title="Pascal Script">Pascal Script</a></div>
<p><a rel="nofollow" class="external text" href="http://www.remobjects.com/ps">Pascal Script</a> (formerly <i>InnerFuse</i>) and <a rel="nofollow" class="external text" href="https://code.google.com/p/dwscript/">DWScript</a> (Delphi Web Script) are open-source Object Pascal <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreters</a> and scripting engines written in Delphi. They support subsets of Object Pascal. DWScript can also compile Object Pascal code into JavaScript code (Smart Pascal), and supports <a href="Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a> (JIT). Modern Pascal provides 3 different interpreters: a <a href="Command-line_interface" title="Command-line interface">command-line interface</a> (CLI), Apache Module (Celerity), and CodeRunner (node.js like solution able to handle different scripts per port), besides the ability to compile and protect a script's <a href="Source_code" title="Source code">source code</a>.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Sample_"Hello_World"_programs">Sample "Hello World" programs</h2></div>
<p>Here are several "Hello World" programs in different Object Pascal versions.
</p>
<div class="mw-heading mw-heading3"><h3 id="Apple_version">Apple version</h3></div>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="w"> </span><span class="k">type</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">object</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">var</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">:</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">;</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nc">THelloWorld</span><span class="o">.</span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">ShowMessage</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">begin</span>
<span class="w"> </span><span class="k">New</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">Dispose</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Turbo_Pascal_version">Turbo Pascal version</h3></div>
<p>Still supported in Delphi and Free Pascal. FPC also packages its own substitutes for the libraries/units. Delphi does not. The Free Pascal 1.0 series and the FPC textmode IDE are the largest open codebases in this dialect. Free Pascal 2.0 was rewritten in a more Delphi-like dialect, and the textmode IDE and related frameworks (Free Vision) are the only parts in the TP version of Object Pascal.
</p>
<div class="mw-heading mw-heading4"><h4 id="Stack_based_allocation">Stack based allocation</h4></div>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="w"> </span><span class="k">type</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">object</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nc">THelloWorld</span><span class="o">.</span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="nb">WriteLn</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">var</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">:</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ allocated on the stack and can be used without explicit allocation. }</span>
<span class="k">begin</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Heap_based_allocation">Heap based allocation</h4></div>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="w"> </span><span class="k">type</span>
<span class="w"> </span><span class="n">PHelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">^</span><span class="n">THelloWorld</span><span class="o">;</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">object</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nc">THelloWorld</span><span class="o">.</span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="nb">WriteLn</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">var</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">:</span><span class="w"> </span><span class="n">PHelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is a typed pointer to a THelloWorld }</span>
<span class="k">begin</span>
<span class="w"> </span><span class="k">New</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">^.</span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">Dispose</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<p>Another example:
</p>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="w"> </span><span class="k">type</span>
<span class="w"> </span><span class="n">PHelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">^</span><span class="n">THelloWorld</span><span class="o">;</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">object</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nc">THelloWorld</span><span class="o">.</span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="nb">WriteLn</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">var</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">:</span><span class="w"> </span><span class="n">PHelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is a typed pointer to a THelloWorld }</span>
<span class="w"> </span><span class="n">HelloWorld2</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="n">THelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is exactly the same with different syntax }</span><span class="w"> </span>
<span class="w"> </span><span class="n">HelloWorld3</span><span class="o">:</span><span class="w"> </span><span class="o">^</span><span class="n">THelloWorld</span><span class="o">;</span><span class="w"> </span>
<span class="w"> </span><span class="n">HelloWorld4</span><span class="o">:</span><span class="w"> </span><span class="n">PHelloWorld</span><span class="o">;</span><span class="w"> </span>
<span class="k">begin</span>
<span class="w"> </span><span class="cm">{ This works in a similar way as the code above, note the allocation and de-allocation, though,</span>
<span class="cm"> many people get confused. In the past there was a wrong example with wrong comments here... }</span>
<span class="w"> </span><span class="k">New</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="cm">{ one instance }</span>
<span class="w"> </span><span class="n">HelloWorld4</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">HelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is valid - a pointer copy }</span>
<span class="w"> </span><span class="n">HelloWorld2</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">HelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is valid - a pointer copy }</span>
<span class="w"> </span><span class="k">New</span><span class="p">(</span><span class="n">HelloWorld3</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="cm">{ a second instance }</span>
<span class="w"> </span><span class="n">HelloWorld4</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">HelloWorld3</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is valid - a pointer copy }</span>
<span class="w"> </span><span class="n">HelloWorld2</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">HelloWorld3</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is valid - a pointer copy }</span>
<span class="w"> </span><span class="k">Dispose</span><span class="p">(</span><span class="n">HelloWorld</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="cm">{ it allocates only two instances }</span>
<span class="w"> </span><span class="k">Dispose</span><span class="p">(</span><span class="n">HelloWorld3</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="cm">{ so it must release only two instances }</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<p>This works based on pointer copy, unless there is a specific allocation for a deeper copy.
</p>
<div class="mw-heading mw-heading3"><h3 id="Delphi_and_Free_Pascal_version">Delphi and Free Pascal version</h3></div>
<div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="k">type</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">procedure</span><span class="w"> </span><span class="nc">THelloWorld</span><span class="o">.</span><span class="nf">Put</span><span class="o">;</span>
<span class="k">begin</span>
<span class="w"> </span><span class="nb">Writeln</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="k">end</span><span class="o">;</span>
<span class="k">var</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">:</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this is an implicit pointer }</span>
<span class="k">begin</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">.</span><span class="n">Create</span><span class="o">;</span><span class="w"> </span><span class="cm">{ constructor returns a pointer to an object of type THelloWorld }</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">.</span><span class="n">Free</span><span class="o">;</span><span class="w"> </span><span class="cm">{ this line deallocates the THelloWorld object pointed to by HelloWorld }</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<p>Note that the object construct is still available in Delphi and Free Pascal.
</p>
<div class="mw-heading mw-heading3"><h3 id="Oxygene_version">Oxygene version</h3></div>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="n">namespace</span><span class="w"> </span><span class="n">ObjectPascalExample</span><span class="o">;</span>
<span class="w"> </span><span class="k">interface</span>
<span class="w"> </span><span class="k">type</span>
<span class="w"> </span><span class="n">ConsoleApp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span>
<span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Main</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span>
<span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">implementation</span>
<span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">ConsoleApp</span><span class="o">.</span><span class="n">Main</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">HelloWorld</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">;</span>
<span class="w"> </span><span class="n">HelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="DWScript_(Smart_Pascal)_version">DWScript (Smart Pascal) version</h3></div>
<div class="mw-highlight mw-highlight-lang-objectpascal mw-content-ltr" dir="ltr"><pre><span class="k">type</span>
<span class="w"> </span><span class="n">THelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">Put</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">PrintLn</span><span class="p">(</span><span class="s">'Hello, World!'</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">var</span><span class="w"> </span><span class="n">HelloWorld</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">THelloWorld</span><span class="o">.</span><span class="n">Create</span><span class="o">;</span>
<span class="n">HelloWorld</span><span class="o">.</span><span class="n">Put</span><span class="o">;</span>
</pre></div>
<p>The method implementation can also be made in a distinct location as in other Object Pascal dialects.
</p>
<div class="mw-heading mw-heading2"><h2 id="Development">Development</h2></div>
<p>Many features have been introduced continuously to Object Pascal with extensions to Delphi and extensions to FreePascal. In reaction to criticism, Free Pascal has adopted generics with the same syntax as Delphi, provided Delphi compatibility mode is selected, and both Delphi (partial) and Free Pascal (more extensive) support <a href="Operator_overloading" title="Operator overloading">operator overloading</a>. Delphi has also introduced many other features since version 7,<sup id="cite_ref-newftrs_17-0" class="reference"><a href="#cite_note-newftrs-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> including generics. Whereas FreePascal tries to be compatible to Delphi in Delphi compatibility mode, it also usually introduced many new features to the language that are not always available in Delphi.
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-InfoworldTechTalk-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-InfoworldTechTalk_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-InfoworldTechTalk_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFGibson1989" class="citation magazine cs1"><a href="Steve_Gibson_(computer_programmer)" title="Steve Gibson (computer programmer)">Gibson, Steve</a> (May 8, 1989). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=RzoEAAAAMBAJ&pg=PT27">"Borland and Microsoft Enter the Object-Oriented Pascal Ring"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. Vol. 11, no. 19. p. 28. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240229162502/https://books.google.com/books?id=RzoEAAAAMBAJ&pg=PT27#v=onepage&q&f=false">Archived</a> from the original on February 29, 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">September 18,</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFTesler1985" class="citation journal cs1">Tesler, Larry (1985). "Object Pascal Report". <i>Structured Language World</i>. <b>9</b> (3): <span class="nowrap">10–</span>7.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFTesler1985" class="citation web cs1">Tesler, Larry (February 4, 1985). <a rel="nofollow" class="external text" href="https://bitsavers.org/pdf/apple/mac/developer/MacApp/Object_Pascal_For_The_Macintosh_19850214.pdf">"Object Pascal for the Macintosh"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">March 13,</span> 2025</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFSeiter1990" class="citation magazine cs1">Seiter, Charles (November 1990). <a rel="nofollow" class="external text" href="https://archive.org/details/mac_MacWorld_9011_November_1990/page/n251/mode/1up">"Think Pascal 3"</a>. <i><a href="Macworld" title="Macworld">Macworld</a></i>. Vol. 7, no. 11. p. 236.</cite></span>
</li>
<li id="cite_note-mt1995_11-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-mt1995_11_5-0">^</a></b></span> <span class="reference-text">
<cite id="CITEREFArnoldMcCarthy1995" class="citation magazine cs1">Arnold, Brian; McCarthy, Guy (November 1995). <a rel="nofollow" class="external text" href="https://archive.org/details/eu_MacTech-1995-11/page/n31/mode/1up">"MacApp Pascal Rides again"</a>. <i><a href="MacTech" title="MacTech">MacTech</a></i>. Vol. 11, no. 11. pp. <span class="nowrap">30–</span>31.</cite></span>
</li>
<li id="cite_note-mt1996_02-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-mt1996_02_6-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFArnold1996" class="citation magazine cs1">Arnold, Brian (February 1996). <a rel="nofollow" class="external text" href="https://archive.org/details/eu_MacTech-1996-02_OCR/page/n26/mode/1up">"MacApp 2 for PowerPC in Object Pascal"</a>. <i><a href="MacTech" title="MacTech">MacTech</a></i>. Vol. 12, no. 2. pp. <span class="nowrap">25–</span>32.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFLischner2000" class="citation book cs1">Lischner, Ray (2000). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/delphidesktopqui00lisc"><i>Delphi in a nutshell: a desktop quick reference</i></a></span> (1st ed.). Sebastopol, CA: O'Reilly and Associates. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1565926595</bdi>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://edn.embarcadero.com/article/38132">Community Letter: Embarcadero Technologies agrees to acquire CodeGear from Borland</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180302044728/http://edn.embarcadero.com/article/38132">Archived</a> 2018-03-02 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>. Edn.embarcadero.com. Retrieved on 2013-07-21.</span>
</li>
<li id="cite_note-fpciphone-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-fpciphone_9-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://wiki.freepascal.org/iPhone/iPod_development">"iPhone/iPod development"</a>. Free Pascal development team. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090428024653/http://wiki.freepascal.org/iPhone/iPod_development">Archived</a> from the original on 2009-04-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-04-13</span></span>.</cite></span>
</li>
<li id="cite_note-asmartbook-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-asmartbook_10-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://leanpub.com/asmartbook"><i>A Smart Book</i></a>. Leanpub. 18 May 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130525145612/https://leanpub.com/asmartbook">Archived</a> from the original on 25 May 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">19 June</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFFuna2021" class="citation web cs1">Funa, Igor (2021). <a rel="nofollow" class="external text" href="http://turbo51.com/">"Turbo51: Turbo Pascal Compiler for 8051 microcontrollers"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180925023509/http://turbo51.com/">Archived</a> from the original on 2018-09-25.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFDraxler" class="citation web cs1">Draxler, Wolfgang. <a rel="nofollow" class="external text" href="https://www.wdsibyl.org/">"WDSibyl: Visual Development Environment"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200212174135/https://www.wdsibyl.org/">Archived</a> from the original on 2020-02-12.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210324031505/http://www.edm2.com/index.php/WDSibyl">"EDM/2: WDSibyl"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.edm2.com/index.php/WDSibyl">the original</a> on 2021-03-24.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20220821090646/http://www.edm2.com/index.php/List_of_Tools">"EDM/2: List of Tools"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.edm2.com/index.php/List_of_Tools">the original</a> on 2022-08-21.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text">
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20211017225456/https://ecsoft2.org/wdsibyl">"eCSoft/2: The Complete OS/2 Software Encyclopedia: WDSibyl"</a>. Archived from <a rel="nofollow" class="external text" href="https://ecsoft2.org/wdsibyl">the original</a> on 2021-10-17.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.modernpascal.com/">"Modern Pascal"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181211010242/http://modernpascal.com/">Archived</a> from the original on 2018-12-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-10-22</span></span>.</cite></span>
</li>
<li id="cite_note-newftrs-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-newftrs_17-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://dn.codegear.com/article/34324">"New Delphi language features since Delphi 7"</a>. CodeGear. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080702184859/http://dn.codegear.com/article/34324">Archived</a> from the original on 2008-07-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-07-06</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.mactech.com/articles/mactech/Vol.02/02.12/ObjectPascal/">Introduction to Object Pascal</a>, MacTech Vol 2 Issue 12 1985.</li>
<li><a rel="nofollow" class="external text" href="http://www.freepascal.org/docs-html/ref/ref.html">Object Pascal reference guide for Free Pascal.</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20091223073028/http://www.freepascal.org/docs-html/ref/ref.html">Archived</a> 2009-12-23 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a> "The aim is to list which Pascal constructs are supported, and to show where the Free Pascal implementation differs from the Turbo Pascal or Delphi implementations."
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060713205007/http://www.freepascal.org/docs/ref.pdf">Free Pascal: Reference guide</a>, Reference guide for Free Pascal, version 2.0.0</li></ul></li>
<li><a rel="nofollow" class="external text" href="http://www.roblocher.com/whitepapers/opascal.html">Major Differences Between the Syntax of C++ and Object Pascal</a></li>
<li><a rel="nofollow" class="external text" href="http://www.think-pascal.org/">Think Pascal 4.5</a> Unofficial page about Symantec's final version of Think Pascal.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Delphi">Delphi</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://docs.embarcadero.com/products/rad_studio/cbuilder6/EN/CB6_ObjPascalLangGuide_EN.pdf">Object Pascal Language Guide</a> Covering Borland Delphi 6-7</li>
<li><a rel="nofollow" class="external text" href="http://www.delphibasics.info">Delphi Basics</a>, Resource of Delphi project source codes.</li>
<li><a rel="nofollow" class="external text" href="http://delphi-help.ru/">Delphi-Help - первая помощь программисту на Delphi</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20161001175512/http://delphiprogramming.org/">Delphi Programming</a>, Resource of Delphi Programming & Delphi Programming Forums.</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r886047488">
/* start https://en.wikipedia.org/ */
.mw-parser-output .nobold{font-weight:normal}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Pascal_programming_language_family576" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Pascal_programming_language_family576" style="font-size:114%;margin:0 4em"><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal programming language</a> family</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></li>
<li><a href="Pascal_Script" title="Pascal Script">Pascal Script</a></li>
<li><a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a></li>
<li><a href="Clascal" title="Clascal">Clascal</a></li>
<li><a href="Concurrent_Pascal" title="Concurrent Pascal">Concurrent Pascal</a></li>
<li><a href="Joyce_(programming_language)" title="Joyce (programming language)">Joyce</a></li>
<li><a href="SuperPascal" title="SuperPascal">SuperPascal</a></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="6" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Compiler" title="Compiler">Compilers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Delphi_(software)" title="Delphi (software)">Delphi</a> (<a href="History_of_Delphi_(software)" title="History of Delphi (software)">history</a>)</li>
<li><a href="Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a></li>
<li><a href="Pascal_(programming_language)#Compilers_and_interpreters" title="Pascal (programming language)">VSI Pascal</a></li>
<li><a href="IP_Pascal" title="IP Pascal">IP Pascal</a></li>
<li><a href="Free_Pascal" title="Free Pascal">Free Pascal</a> (<a href="Lazarus_(software)" title="Lazarus (software)">Lazarus</a>)</li>
<li><a href="PascalABC.NET" title="PascalABC.NET">PascalABC.NET</a></li>
<li><a href="GNU_Pascal" title="GNU Pascal">GNU Pascal</a></li>
<li><a href="Turbo51" title="Turbo51">Turbo51</a></li>
<li><a href="Pic_Micro_Pascal" title="Pic Micro Pascal">Pic Micro Pascal</a></li>
<li><a href="Amsterdam_Compiler_Kit" title="Amsterdam Compiler Kit">ACK</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Virtual_Pascal" title="Virtual Pascal">Virtual Pascal</a></li>
<li><a href="Apple_Pascal" title="Apple Pascal">Apple Pascal</a></li>
<li><a href="Borland_Kylix" title="Borland Kylix">Borland Kylix</a></li>
<li><a href="Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a></li>
<li><a href="Microsoft_Pascal" title="Microsoft Pascal">Microsoft Pascal</a></li>
<li><a href="UCSD_Pascal" title="UCSD Pascal">UCSD Pascal</a></li>
<li><a href="JRT_Pascal" title="JRT Pascal">JRT Pascal</a></li>
<li><a href="Pascal/MT%2B" title="Pascal/MT+">Pascal/MT+</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="API" title="API">API</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">CLX</a></li>
<li><a href="Free_Component_Library" title="Free Component Library">FCL</a></li>
<li><a href="FireMonkey" title="FireMonkey">FireMonkey</a></li>
<li><a href="Lazarus_Component_Library" title="Lazarus Component Library">LCL</a></li>
<li><a href="Object_Windows_Library" title="Object Windows Library">Object Windows Library</a></li>
<li><a href="OpenWire_(library)" title="OpenWire (library)">OpenWire</a></li>
<li><a href="Free_Pascal_Runtime_Library" title="Free Pascal Runtime Library">RTL</a></li>
<li><a href="Turbo_Vision" title="Turbo Vision">Turbo Vision</a></li>
<li><a href="Visual_Component_Library" title="Visual Component Library">Visual Component Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Microcomputer" title="Microcomputer">Microcomputer</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Pascal_MicroEngine" title="Pascal MicroEngine">Pascal MicroEngine</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Comparison_of_programming_languages" title="Comparison of programming languages">Comparisons</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Comparison_of_Pascal_and_C" title="Comparison of Pascal and C">Pascal and C</a></li>
<li><a href="Comparison_of_Pascal_and_Delphi" title="Comparison of Pascal and Delphi">Pascal and Delphi</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Designer</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div>
<ul><li><a href="Generic_programming#Genericity_in_Pascal" title="Generic programming">Genericity</a></li></ul>
<dl><dt><span class="nobold">Related to</span></dt>
<dd><a href="ALGOL" title="ALGOL">ALGOL</a> (1958)</dd>
<dd><a href="Modula-2" title="Modula-2">Modula-2</a> (1977)</dd>
<dd><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a> (1983)</dd>
<dd><a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a> (1986)</dd>
<dd><a href="Modula-3" title="Modula-3">Modula-3</a> (1988)</dd>
<dd><a href="Oberon-2" title="Oberon-2">Oberon-2</a> (1991)</dd>
<dd><a href="Component_Pascal" title="Component Pascal">Component Pascal</a> (1991)</dd></dl>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Niklaus_Wirth207" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Niklaus_Wirth207" style="font-size:114%;margin:0 4em"><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language" title="Programming language">Programming<br>languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><a href="Euler_(programming_language)" title="Euler (programming language)">Euler</a> (1965) → <a href="PL360" title="PL360">PL360</a> (1966) → <a href="ALGOL_W" title="ALGOL W">ALGOL W</a> (1966) → <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a> (1970) → <a href="Modula" title="Modula">Modula</a> (1975) → <a href="Modula-2" title="Modula-2">Modula-2</a> (1978) → (1986) → <a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a> (1987) → <a href="Oberon-2" title="Oberon-2">Oberon-2</a> (1991) → <a href="Lola_(computing)" title="Lola (computing)">Lola</a> (1995) → <a href="Active_Oberon" title="Active Oberon">Active Oberon</a> (1998) → <a href="Oberon_(programming_language)#Oberon-07" title="Oberon (programming language)">Oberon-07</a> (2007)</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Operating_system" title="Operating system">Operating systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><a href="Oberon_(operating_system)" title="Oberon (operating system)">Oberon System</a> (1987) → <a href="A2_(operating_system)" title="A2 (operating system)">Active Object System (AOS, 2002), Bluebottle (2005), A2</a> (2008)</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Formalism_(philosophy_of_mathematics)" title="Formalism (philosophy of mathematics)">Formalisms</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Wirth's_law" title="Wirth's law">Wirth's law</a></li>
<li><a href="Wirth_syntax_notation" title="Wirth syntax notation">Wirth syntax notation</a></li>
<li><a href="Wirth%E2%80%93Weber_precedence_relationship" title="Wirth–Weber precedence relationship">Wirth–Weber precedence relationship</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Books</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><i><a href="Algorithms_%2B_Data_Structures_%3D_Programs" title="Algorithms + Data Structures = Programs">Algorithms + Data Structures = Programs</a></i></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Workstation" title="Workstation">Workstations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><a href="Lilith_(computer)" title="Lilith (computer)">Lilith</a> (1977) → <a href="Ceres_(workstation)" title="Ceres (workstation)">Ceres</a> (1985)</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Workplaces</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Stanford_University" title="Stanford University">Stanford University</a> (1963–67)</li>
<li><a href="University_of_Zurich" title="University of Zurich">University of Zurich</a> (1963–67)</li>
<li><a href="ETH_Zurich" title="ETH Zurich">ETH Zurich</a> (1968–99)</li>
<li><a href="PARC_(company)" title="PARC (company)">Xerox PARC</a> (1976–77, 1984–85)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Collaborators</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="J%C3%BCrg_Gutknecht" title="Jürg Gutknecht">Jürg Gutknecht</a></li>
<li><a href="Tony_Hoare" title="Tony Hoare">Tony Hoare</a></li>
<li><a href="https://de.wikipedia.org/wiki/Hanspeter_M%C3%B6ssenb%C3%B6ck" class="extiw external" title="de:Hanspeter Mössenböck">de:Hanspeter Mössenböck</a></li>
<li><a href="Larry_Tesler" title="Larry Tesler">Larry Tesler</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Awards</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Turing_Award" title="Turing Award">Turing Award</a></li>
<li><a href="SIGPLAN" title="SIGPLAN">SIGPLAN</a> Programming Languages Achievement Award</li>
<li>Fellow of the <a href="Computer_History_Museum" title="Computer History Museum">Computer History Museum</a></li>
<li><a href="Marcel_Benoist_Prize" title="Marcel Benoist Prize">Marcel Benoist Prize</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category</b></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-label="Navbox599" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="Object Pascal (programovací jazyk)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph117950&CON_LNG=ENG">Czech Republic</a></span></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-29" href="https://en.wikipedia.org/wiki/?title=Object_Pascal&oldid=1298009070">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>